from kubernetes import client, config

def get_cur_namespace():
    # 加载 kubeconfig 文件，如果没有指定，则使用默认的 kubeconfig 文件
    config.load_kube_config()

    # 创建 CoreV1Api 的实例，用于与集群通信
    v1 = client.CoreV1Api()

    # 获取当前命名空间
    current_namespace = v1.list_namespace(watch=False).items[0].metadata.name

    # 打印当前命名空间
    print("Current Namespace:", current_namespace)

def get_all_namespaces():
    # 加载 kubeconfig 文件，如果没有指定，则使用默认的 kubeconfig 文件
    config.load_kube_config()

    # 创建 CoreV1Api 的实例，用于与集群通信
    v1 = client.CoreV1Api()

    # 获取所有命名空间
    namespaces = v1.list_namespace().items

    # 打印所有命名空间
    print("All Namespaces:")
    for ns in namespaces:
        print(ns.metadata.name)



if __name__ == "__main__":
    get_cur_namespace()
    get_all_namespaces()

